[新機能] CloudFormationでEBS Elastic Volumesがサポートされました
こんにちは、菊池です。
2017年2月のアップデートで、EBSボリュームサイズ/ボリュームタイプが動的に変更可能になりました。
- Amazon EBS Update – New Elastic Volumes Change Everything
- 【遂に来た!】EBS でボリュームサイズを変更できるようになりました(ボリュームタイプ変更も)
今回、4月28日のアップデートで、そのEBS Elastic VolumesがCloudFormationでもサポートされ、スタックアップデートで変更が可能になりました。
試してみた
早速試してみます。
今回のアップデートの対象は"Type":"AWS::EC2::Volume"
で指定したボリュームのみです。"Type" : "AWS::EC2::Instance"
の"BlockDeviceMappings"
で指定したリソースは対象外です。"AWS::EC2::Instance"
のボリュームサイズ/タイプを変更すると、リプレースとなりますのでご注意ください。
ボリュームの作成
まずは、CloudFormationテンプレートでEBSボリュームを作成しインスタンスにアタッチします。
{ "AWSTemplateFormatVersion" : "2010-09-09", "Description" : "EBS Elastic Volume Test", "Resources" : { "Volume" : { "Type":"AWS::EC2::Volume", "Properties" : { "AvailabilityZone" : "ap-northeast-1a", "Size" : 10, "VolumeType" : "gp2" } }, "VolumeAttachment" : { "Type":"AWS::EC2::VolumeAttachment", "Properties" : { "Device" : "/dev/sdf", "InstanceId" : "i-xxxxxxxxxxxxxxxx", "VolumeId" : { "Ref" : "Volume" } } } } }
インスタンスで確認すると、以下のようにxvdf:10GBで認識されています。
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 20G 0 disk └─xvda1 202:1 0 20G 0 part / xvdf 202:80 0 10G 0 disk
ボリュームサイズ変更
次に、ボリュームサイズを変更します。
{ "AWSTemplateFormatVersion" : "2010-09-09", "Description" : "EBS Elastic Volume Test", "Resources" : { "Volume" : { "Type":"AWS::EC2::Volume", "Properties" : { "AvailabilityZone" : "ap-northeast-1a", "Size" : 20, "VolumeType" : "gp2" } }, "VolumeAttachment" : { "Type":"AWS::EC2::VolumeAttachment", "Properties" : { "Device" : "/dev/sdf", "InstanceId" : "i-xxxxxxxxxxxxxxx", "VolumeId" : { "Ref" : "Volume" } } } } }
変更したテンプレートでスタックを更新します。
ボリュームが変更されます。
更新されました。
インスタンスも停止することなく、ディスクサイズが20GBに変更されています。
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 20G 0 disk └─xvda1 202:1 0 20G 0 part / xvdf 202:80 0 10G 0 disk $ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 20G 0 disk └─xvda1 202:1 0 20G 0 part / xvdf 202:80 0 20G 0 disk
最後に
EBS Elastic VolumesがCloudFormationでサポートされたことで、を更新する運用をしている場合もこの機能を利用可能になりました。CloudFormationの適用範囲を広げることが可能になりますね。